// Product模型
// 引入sequelize模型
let Sequelize=require('sequelize');

//定义模型对象
let Model=Sequelize.Model;

//Uers模型继承Model
class Product extends Model{};

// 创建Product数据表结构
Product.init({
  // 表id
  id:{
    // 定义表结构
    // 数据类型      整型     无符号
    type:Sequelize.INTEGER.UNSIGNED,
    allowNull:false,    // 不能为空
    primaryKey:true,    // 主键类型
    autoIncrement:true,  // 自动递增
    comment:'表id'       // 备注
  },
  // 商品id
  pid:{
    type:Sequelize.STRING(20),
    allowNull:false,
    defaultValue:'',    //默认值
    comment:'商品id'
  },
  // 用户Id
  userId:{
    type:Sequelize.STRING(30),
    allowNull:false,
    defaultValue:'',    //默认值
    comment:'用户id'
  },
  // 商品名称
  pname:{
    type:Sequelize.STRING(20),
    allowNull:false,
    defaultValue:'',    //默认值
    comment:'商品名称'
  },
  // 商品类型
  typeName:{
    type:Sequelize.STRING(30),
    allowNull:false,
    defaultValue:'',    //默认值
    comment:'类型名称'
  },
  // 商品价格
  Price:{
    type:Sequelize.DECIMAL.UNSIGNED,
    allowNull:false,
    defaultValue:0,    //默认值
    comment:'商品价格'
  },
  // 商品库存
  count:{
    type:Sequelize.INTEGER.UNSIGNED,
    allowNull:false,
    defaultValue:0,
    comment:'商品库存'
  },
  // 商品图片
  pimg:{
    type:Sequelize.STRING(120),
    allowNull:false,
    defaultValue:'',
    comment:'商品图片'
  },
  // 商品状态
  status:{
    type:Sequelize.BOOLEAN,
    allowNull:false,
    defaultValue:1,
    comment:'商品状态，1上架 0下架'
  },
  // 商品描述
  desc:{
    type:Sequelize.STRING,
    allowNull:false,
    defaultValue:'',
    comment:'商品描述'
  },
},{
  // 配置项
  modelName:'product',   //外键
  timestamps:true,    //时间戳
  // paranoid:true,      //逻辑删除
  underscored:true,   //自动修改_命名法
  freezeTableName:true,  //冻结表名
  sequelize:globalThis.Sequelize
})
Product.sync({force:false})  //如果表存在不创建新表
// 导出模型
module.exports=Product;